
def chinese_to_arabic(chinese_num):
    # 中文数字到阿拉伯数字的映射
    digit_map = {
        '零': 0, '一': 1, '二': 2, '三': 3, '四': 4,
        '五': 5, '六': 6, '七': 7, '八': 8, '九': 9
    }
    unit_map = {
        '十': 10, '百': 100, '千': 1000, '万': 10000, '亿': 100000000
    }

    # 如果输入为空或非字符串，返回None或抛出异常
    if not chinese_num or not isinstance(chinese_num, str):
        return None

    # 处理简单情况：单个中文数字
    if len(chinese_num) == 1 and chinese_num in digit_map:
        return digit_map[chinese_num]

    # 初始化结果和当前数值
    result = 0
    temp = 0

    # 从右到左遍历中文数字字符串
    for char in chinese_num:
        if char in digit_map:
            temp = digit_map[char]  # 记录当前数字
        elif char in unit_map:
            # 如果是单位，乘以对应的倍数
            if temp == 0 and char == '十':  # 处理“十”、“二十”这样的情况
                temp = 1
            result += temp * unit_map[char]
            temp = 0  # 重置临时数字
        else:
            return None  # 非法字符

    # 加上最后剩余的数字（如果有）
    result += temp
    return result
